Menggunakan int, double, dan num untuk operasi angka.
Memakai true/false untuk logika dan pengambilan keputusan.
Mengolah teks, interpolation, dan method String dasar.
Menggunakan dynamic dan type casting secara tepat.
Tipe data Number dalam Dart memiliki dua jenis utama:
Penting: Dart adalah bahasa strongly-typed, artinya tipe data harus
jelas meskipun bisa menggunakan var untuk inferensi otomatis.
void main() {
// Integer (bilangan bulat)
int umur = 17;
int jumlahSiswa = 30;
// Double (bilangan desimal)
double nilaiPI = 3.14159;
double tinggi = 165.5;
// Num (bisa int atau double)
num angka1 = 100; // int
num angka2 = 99.9; // double
// Operasi matematika
int penjumlahan = 10 + 5; // 15
double pembagian = 15 / 3; // 5.0 (selalu double)
int pembagianBulat = 15 ~/ 3; // 5 (pembagian integer)
int sisaBagi = 17 % 5; // 2 (modulus)
}
Tipe data Boolean atau bool hanya memiliki dua nilai:
true atau falseboolvoid main() {
// Boolean dasar
bool sudahLulus = true;
bool sedangHujan = false;
// Operator perbandingan
bool lebihBesar = 10 > 5; // true
bool samaDengan = 5 == 5; // true
bool tidakSama = 7 != 3; // true
// Operator logika
bool dan = true && false; // false
bool atau = true || false; // true
bool tidak = !true; // false
}
> |
Lebih besar |
< |
Lebih kecil |
== |
Sama dengan |
!= |
Tidak sama |
>= |
Lebih besar sama |
<= |
Lebih kecil sama |
&& |
AND (semua harus true) |
|| |
OR (salah satu true) |
! |
NOT (kebalikan) |
Tipe data String digunakan untuk menyimpan teks atau karakter.
'...' atau "..."
'''...'''
$variabel atau ${ekspresi}
r'...'
void main() {
// String dasar
String nama = "Budi Santoso";
String alamat = 'Jl. Merdeka No. 123';
// String interpolation
String namaDepan = "Budi";
int umur = 17;
String kalimat = 'Nama saya $namaDepan, umur ${umur} tahun';
// Methods string
String teks = "Belajar Programming";
print(teks.length); // 19
print(teks.toUpperCase()); // "BELAJAR PROGRAMMING"
print(teks.toLowerCase()); // "belajar programming"
print(teks.contains("Program")); // true
print(teks.substring(0, 7)); // "Belajar"
}
.lengthPanjang string.toUpperCase()Huruf besar.toLowerCase()Huruf kecil.contains()Cek substring.substring()Potong string.split()Pecah stringDart menyediakan tipe dynamic untuk kasus khusus di mana tipe data bisa berubah.
Penggunaan dynamic sebaiknya diminimalkan karena menghilangkan keuntungan
type-safety!
void main() {
// VAR - tipe ditentukan saat inisialisasi
var angka = 100; // Dart inference: int
// angka = "seratus"; // ERROR! Tidak bisa ubah tipe
angka = 200; // OK, masih int
// DYNAMIC - tipe bisa berubah
dynamic data = 100; // Awalnya int
print(data.runtimeType); // int
data = "Seratus"; // Berubah jadi String
print(data.runtimeType); // String
data = true; // Berubah jadi bool
print(data.runtimeType); // bool
// Mengecek tipe data
print(data is bool); // true
}
Konversi tipe data sangat penting karena Dart adalah strongly-typed.
int.parse() |
String → int |
double.parse() |
String → double |
.toString() |
Any → String |
.toInt() |
double → int |
.toDouble() |
int → double |
void main() {
// STRING KE NUMBER
String stringAngka = "123";
int angka = int.parse(stringAngka); // 123
double desimal = double.parse("3.14"); // 3.14
// Parse dengan default value (aman)
int aman = int.tryParse("abc") ?? 0; // 0 jika gagal
// NUMBER KE STRING
int nilai = 100;
String str = nilai.toString(); // "100"
// INT DAN DOUBLE
double des = 9.8;
int bulat = des.toInt(); // 9 (truncate)
int bundar = des.round(); // 10 (pembulatan)
int bawah = des.floor(); // 9 (ke bawah)
int atas = des.ceil(); // 10 (ke atas)
}
Tujuan: Memahami Number dan operasi matematika
void main() {
int angka1 = 15;
int angka2 = 3;
int tambah = angka1 + angka2;
int kurang = angka1 - angka2;
int kali = angka1 * angka2;
double bagi = angka1 / angka2;
int bagiInt = angka1 ~/ angka2;
int modulus = angka1 % angka2;
print("=== KALKULATOR SEDERHANA ===");
print("Penjumlahan: $angka1 + $angka2 = $tambah");
print("Pengurangan: $angka1 - $angka2 = $kurang");
print("Perkalian : $angka1 × $angka2 = $kali");
}
=== KALKULATOR SEDERHANA === Penjumlahan: 15 + 3 = 18 Pengurangan: 15 - 3 = 12 Perkalian : 15 × 3 = 45
Tujuan: Memahami Boolean dan operator perbandingan
void main() {
String namaSiswa = "Andi Wijaya";
int nilaiUjian = 75;
int persenKehadiran = 80;
int nilaiTugas = 85;
bool nilaiCukup = nilaiUjian >= 70;
bool kehadiranCukup = persenKehadiran >= 75;
bool tugasCukup = nilaiTugas >= 70;
bool lulus = nilaiCukup && kehadiranCukup && tugasCukup;
print("Nama: $namaSiswa");
print("STATUS: ${lulus ? 'LULUS ✓' : 'TIDAK LULUS ✗'}");
}
Nama: Andi Wijaya STATUS: LULUS ✓
Tujuan: Memahami String dan string interpolation
void main() {
String namaDepan = "Siti";
String namaBelakang = "Nurhaliza";
String kelas = "10A";
String noInduk = "2024001";
String sekolah = "SMA Nusantara";
String namaLengkap = "$namaDepan $namaBelakang";
String inisial = "${namaDepan[0]}${namaBelakang[0]}";
print("╔═══ KARTU PELAJAR DIGITAL ═══╗");
print("║ Nama: ${namaLengkap.toUpperCase()}");
print("║ NIS : $noInduk");
print("║ Kelas: $kelas | Inisial: $inisial");
print("╚═════════════════════════════╝");
}
Tujuan: Memahami konversi tipe data dan perhitungan
void main() {
String celsiusString = "25"; // Input sebagai string
// Konversi string ke number
double celsius = double.parse(celsiusString);
// Rumus konversi
double fahrenheit = (celsius * 9/5) + 32;
double kelvin = celsius + 273.15;
double reamur = celsius * 4/5;
print("╔═══ KONVERTER SUHU ═══╗");
print("║ Input: ${celsius}°C");
print("║ → Fahrenheit: ${fahrenheit.toStringAsFixed(1)}°F");
print("║ → Kelvin: ${kelvin.toStringAsFixed(2)}K");
print("║ → Reamur: ${reamur.toStringAsFixed(1)}°R");
print("╚══════════════════════╝");
}
int, double, num untuk angka
true / false untuk logika
Teks dengan interpolation
var, dynamic, Object
parse(), toString(), toInt()
Terima kasih! 🎉
Selamat belajar Dart!